package com.example.web.mapper;

import com.example.web.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {
    
    /**
     * 根据用户名查找用户
     */
    User findByUsername(@Param("username") String username);
    
    /**
     * 根据用户名和密码查找用户
     */
    User findByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
    
    /**
     * 插入用户
     */
    int insert(User user);
    
    /**
     * 根据ID查找用户
     */
    User findById(@Param("id") Long id);
    
    /**
     * 更新用户
     */
    int update(User user);
    
    /**
     * 获取所有用户
     */
    List<User> findAll();
    
    /**
     * 根据ID删除用户
     */
    int deleteById(@Param("id") Long id);
    
    /**
     * 分页查询用户列表
     */
    List<User> findUsersByPage(@Param("offset") Integer offset, 
                               @Param("size") Integer size, 
                               @Param("username") String username);
    
    /**
     * 统计用户总数
     */
    Long countUsers(@Param("username") String username);
}